package com.example.project.common;

import com.example.project.dao.ExterUnitCatalogDao;
import com.example.project.dto.ExterUnitCatalogDTO2;
import com.example.project.entity.ExterUnitCatalog;
import com.example.project.entity.SysMessage;

import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class MyTool {

    /**
     * 生成当前date类型的时间
     * */
    public Date dateNow(){
        Date now = new Date();

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDateTime = sdf.format(now);
        
        try {
            Date date = sdf.parse(formattedDateTime);
            return date;
        } catch (ParseException e) {
            System.out.println("日期格式不正确");
        }
        return null;
    }
/**
 * 将ExterUnitCatalog转换成ExterUnitCatalogDTO2
 * */
    public ExterUnitCatalogDTO2 convert(ExterUnitCatalog e) {
        ExterUnitCatalogDTO2 exterUnitCatalogDTO2 = new ExterUnitCatalogDTO2();
        exterUnitCatalogDTO2.setUnitCategory(e.getUnitCategory());
        exterUnitCatalogDTO2.setCreater(e.getCreater());
        exterUnitCatalogDTO2.setCreatTime(e.getCreatTime());
        exterUnitCatalogDTO2.setId(e.getId());
        exterUnitCatalogDTO2.setValid(e.getValid());
        return exterUnitCatalogDTO2;
    }
//+1天
    public Date nextDay(Date day) {
        Date nextDay = new Date();
        if(day == null){
            return null;
        }
        // 创建一个 Calendar 对象，并将当前日期设置为其时间
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(day);

        // 将 Calendar 对象的日期加一天
        calendar.add(Calendar.DAY_OF_MONTH, 1);

        // 获取加一天后的日期
         nextDay = calendar.getTime();
        return nextDay;
    }
    /**
     * 将用","分割开的字符串 变成list集合
     * */
    public List<Integer> myToList(String data){
        String[] dataTwo = data.split(",");
        List<Integer> d = new ArrayList<>();
        for(int i=0;i<dataTwo.length;i++){
            d.add(Integer.parseInt(dataTwo[i]));
        }
        return d;
    }

    public Date dateSomeNOw(String data,Date date) {
        Date d2 = new Date();
        if (data != null){
            String[] parts = data.split(",");
            int m = Integer.parseInt(parts[1]);
            int d = Integer.parseInt(parts[0]);
            d2 = mdDate(date,m,d);
        }
        return d2;
    }
    /**
     * d1 时间
     * m 月数
     * d 天数
     * 返回当前时间
     * */
    private Date mdDate(Date d1, int m, int d) {
        Date day = new Date();
        // 创建一个 Calendar 对象，并将当前日期设置为其时间
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(d1);

        // 将 Calendar 对象的日期加d天
        calendar.add(Calendar.DAY_OF_MONTH, d);
        // 加上一个月
        calendar.add(Calendar.MONTH, m);
        // 获取加一天后的日期
        day = calendar.getTime();
        return day;
    }
    /**
     * 生成安全培训的报警消息
     * */
    public SysMessage generateMessage(String data){
        SysMessage sysMessage = new SysMessage();
        sysMessage.setMessage(data);
        sysMessage.setUserId(1);
        sysMessage.setCreateTime(dateNow());
        sysMessage.setSState(1);
        return sysMessage;
    }
}
